public class TestMain {
//    public static void main(String[] a) throws Exception {
//
//        List<String> errors=new ArrayList<>();
//        StoreInfo store=ModelQueryList.getModel(StoreInfo.class,"IAC7ZKE1M01H","*");
//        for(int i=0;i<400;i++){
//            for(int n=0;n<10;n++) {
//                try{
//                    new TestMain().addStock(store, DateUtil.getAddDate(new Date(), -i));
//                }catch (Exception e){
//                    errors.add(e.getMessage());
//                }
//            }
//        }
//        for(int i=0;i<400;i++){
//            for(int n=0;n<10;n++) {
//                try{
//                    new TestMain().addSale(store, DateUtil.getAddDate(new Date(), -i));
//                }catch (Exception e){
//                    errors.add(e.getMessage());
//                }
//            }
//        }
//        SystemUtil.println("错误数量：",errors.size());
//        SystemUtil.println(errors);
//    }
//    private void addStock(StoreInfo store,Date date) throws Exception {
//        StockInfo stockInfo=new StockInfo();
//        stockInfo.setStore(store);
//        stockInfo.setInputUser(getUser(store));
//        stockInfo.setInputDate(date);
//        stockInfo.setStockDate(date);
//        stockInfo.setGuest(getGuest(store));
//        stockInfo.setType(StockInfo.Type_Stock);
//        stockInfo.setOrderNo(StoreNumberService.getNextStockNumber(store.getOid()));
//        stockInfo.setStatus(OrderModel.Status_Register);
//        List<GoodsStockRecord> ls=new ArrayList<>();
//        for(int i=0;i<3;i++){
//            GoodsStockRecord r=new GoodsStockRecord();
//            r.setGoods(getGoods(store));
//            r.setPrice(NumberUtil.round(new Random().nextDouble()*300.0+200.0,2));
//            r.setStockNum(new Random().nextInt(30)+10);
//            r.setPreferential(new Random().nextInt(6)*100.0);
//            r.setStockAmount(NumberUtil.round(r.getPrice()*r.getStockNum()-r.getPreferential(),2));
//            r.setPreferentialPrice(NumberUtil.round(r.getStockAmount()/r.getStockNum(),2));
//            ls.add(r);
//        }
//        StoreGoodsSupport.doneHandler(ls.stream().map(item->item.getGoods().getOid()).toArray(String[]::new));
//        TransactionManager tm=new TransactionManager();
//        try {
//            tm.begin();
//            RuntimeData.getService(StockInfoService.class).saveAndSubmit(stockInfo, ls);
//            RuntimeData.getService(StockInfoService.class).check(stockInfo.getOid(), date, "", store, getUser(store));
//            tm.commit();
//        }catch (Exception e){
//            tm.rollback();
//            throw e;
//        }
//    }
//    private void addSale(StoreInfo store,Date date) throws Exception {
//        SaleInfo saleInfo=new SaleInfo();
//        saleInfo.setStore(store);
//        saleInfo.setInputUser(getUser(store));
//        saleInfo.setInputDate(date);
//        saleInfo.setSaleDate(date);
//        saleInfo.setGuest(getGuest(store));
//        saleInfo.setType(SaleInfo.Type_Sale);
//        saleInfo.setOrderNo(StoreNumberService.getNextSaleNumber(store.getOid()));
//        saleInfo.setStatus(OrderModel.Status_Register);
//        List<GoodsOutRecord> ls=new ArrayList<>();
//        for(int i=0;i<3;i++){
//            GoodsOutRecord r=new GoodsOutRecord();
//            r.setGoods(getGoods(store));
//            r.setPrice(NumberUtil.round(new Random().nextDouble()*300.0+200.0,2));
//            r.setNum(new Random().nextInt(30)+10);
//            r.setPreferential(new Random().nextInt(6)*100.0);
//            r.setSaleAmount(NumberUtil.round(r.getPrice()*r.getNum()-r.getPreferential(),2));
//            r.setPreferentialPrice(NumberUtil.round(r.getSaleAmount()/r.getNum(),2));
//            ls.add(r);
//        }
//        StoreGoodsSupport.doneHandler(ls.stream().map(item->item.getGoods().getOid()).toArray(String[]::new));
//        TransactionManager tm=new TransactionManager();
//        try {
//            tm.begin();
//            RuntimeData.getService(SaleInfoService.class).saveAndSubmit(saleInfo,ls);
//            RuntimeData.getService(SaleInfoService.class).check(saleInfo.getOid(),date,"",store,getUser(store));
//            tm.commit();
//        }catch (Exception e){
//            tm.rollback();
//            throw e;
//        }
//    }
//    List<UserInfo> users=null;
//    private UserInfo getUser(StoreInfo store) throws SQLException, MException {
//        if(null==users){
//            users= ModelQueryList.getModelList(UserInfo.class,new String[]{"*"},null, QueryCondition.eq("orgGroup.oid",store.getOid()));
//        }
//        return users.get(new Random().nextInt(users.size()));
//    }
//    List<GuestInfo> guests=null;
//    private GuestInfo getGuest(StoreInfo store) throws SQLException, MException {
//        if(null==guests){
//            guests= ModelQueryList.getModelList(GuestInfo.class,new String[]{"*"},null, QueryCondition.eq("store.oid",store.getOid()));
//        }
//        return guests.get(new Random().nextInt(guests.size()));
//    }
//    List<StoreGoods> goods=null;
//    private StoreGoods getGoods(StoreInfo store) throws SQLException, MException {
//        if(null==goods){
//            goods= ModelQueryList.getModelList(StoreGoods.class,new String[]{"*"},null, QueryCondition.eq("store.oid",store.getOid()));
//        }
//        return goods.get(new Random().nextInt(goods.size()));
//    }

}
